home *** CD-ROM | disk | FTP | other *** search
- on displayError whichMessageName
- global gMaxChannels
- editableOff()
- set whichMember to "error messages text"
- set vCurrentMessage to retrieveMessage(whichMessageName, whichMember)
- set the text of member "error display" to vCurrentMessage
- repeat with m = 1 to gMaxChannels
- case 1 of
- (the castNum of sprite m < 1):
- (the name of member the castNum of sprite m starts "error"):
- puppetSprite(m, 1)
- if the locH of sprite m < 0 then
- set the locH of sprite m to the locH of sprite m + 1000
- end if
- end case
- end repeat
- end
-
- on retrieveMessage whichMessageName, whichMember
- set vSourceText to whichMember
- set vStartLine to 0
- set vTotalLines to the number of lines in the text of member vSourceText
- repeat with m = 1 to vTotalLines
- set vCurrentLIne to line m of the text of member vSourceText
- if vCurrentLIne starts "<" then
- if vCurrentLIne = whichMessageName then
- set vStartLine to m + 1
- set vEndLIne to 0
- repeat with N = vStartLine to vTotalLines
- set vCurrentLIne to line N of the text of member vSourceText
- set vLastChar to the last char in vCurrentLIne
- set vFirstChar to char 1 of vCurrentLIne
- if (vLastChar = ">") and (vFirstChar = "<") then
- set vEndLIne to N - 1
- exit repeat
- next repeat
- end if
- if N = vTotalLines then
- set vEndLIne to N
- end if
- end repeat
- end if
- end if
- end repeat
- if (vStartLine = 0) and (vEndLIne = 0) then
- return " "
- else
- return line vStartLine to vEndLIne of the text of member vSourceText
- end if
- end
-
- on endErrorMessage
- global gMaxChannels
- editableOn()
- repeat with m = 1 to gMaxChannels
- if the castNum of sprite m > 0 then
- if the name of member the castNum of sprite m starts "error" then
- if the locH of sprite m >= 0 then
- set the locH of sprite m to the locH of sprite m - 1000
- end if
- puppetSprite(m, 0)
- end if
- end if
- end repeat
- end
-
- on editableOff
- global gMaxChannels, gEditableList
- if voidp(gEditableList) then
- set gEditableList to []
- end if
- repeat with m = 1 to gMaxChannels
- if the memberNum of sprite m > 0 then
- set vWhichMember to the memberNum of sprite m
- set vWhichCast to the castLibNum of sprite m
- set vMemberNumber to the number of member vWhichMember of castLib vWhichCast
- set vName to the name of member vMemberNumber
- if the type of member vMemberNumber = #field then
- if the editable of member vMemberNumber = 1 then
- set the editable of member vMemberNumber to 0
- add(gEditableList, vMemberNumber)
- end if
- end if
- end if
- end repeat
- end
-
- on editableOn
- global gEditableList
- if voidp(gEditableList) then
- else
- repeat with m in gEditableList
- set the editable of member m to 1
- end repeat
- set gEditableList to []
- end if
- end
-